package com.example.LinkedListTraversal;

import java.util.LinkedList;
import java.util.Iterator;
// 使用迭代器Iterator
public class IteratorExample {
    public static void main(String[] args) {
        // 创建LinkedList
        LinkedList<String> colors = new LinkedList<>();
        colors.add("Red");      // 添加红色
        colors.add("Green");    // 添加绿色
        colors.add("Blue");     // 添加蓝色
        colors.add("Yellow");   // 添加黄色

        System.out.println("=== 迭代器正向遍历 ===");

        // 获取迭代器对象
        Iterator<String> iterator = colors.iterator();

        // 使用while循环和迭代器遍历
        while (iterator.hasNext()) {  // 检查是否有下一个元素
            String color = iterator.next();  // 获取下一个元素
            System.out.println("颜色: " + color);

            // 可以在遍历时安全地移除元素
            if ("Blue".equals(color)) {
                iterator.remove();  // 移除当前元素
                System.out.println("已移除蓝色");
            }
        }

        System.out.println("移除后的列表: " + colors);
        /*输出：
            === 迭代器正向遍历 ===
            颜色: Red
            颜色: Green
            颜色: Blue
            已移除蓝色
            颜色: Yellow
            移除后的列表: [Red, Green, Yellow]
        */
    }
}